package org.hsw.infrastructure.dao;

import cn.bugstack.middleware.db.router.annotation.DBRouter;
import cn.bugstack.middleware.db.router.annotation.DBRouterStrategy;
import org.hsw.infrastructure.dao.po.RaffleActivityOrder;
import org.apache.ibatis.annotations.Mapper;

import java.util.List;

@Mapper
@DBRouterStrategy(splitTable = true)
public interface IRaffleActivityOrderDao {

    /**
     * 根据 ID 查询抽奖活动订单
     * @param id 自增 ID
     * @return 抽奖活动订单对象
     */
    RaffleActivityOrder queryById(Long id);

    /**
     * 查询所有抽奖活动订单
     * @return 抽奖活动订单列表
     */
    List<RaffleActivityOrder> queryAll();

    /**
     * 插入抽奖活动订单
     * @param raffleActivityOrder 抽奖活动订单对象
     * @return 插入成功的记录数
     */
    @DBRouter(key = "userId")
    int insert(RaffleActivityOrder raffleActivityOrder);

    /**
     * 根据 ID 更新抽奖活动订单
     * @param raffleActivityOrder 抽奖活动订单对象
     * @return 更新成功的记录数
     */
    int update(RaffleActivityOrder raffleActivityOrder);

    /**
     * 根据 ID 删除抽奖活动订单
     * @param id 自增 ID
     * @return 删除成功的记录数
     */
    int deleteById(Long id);
    @DBRouter
    List<RaffleActivityOrder> queryRaffleActivityOrderByUserId(String userId);
}
